import { IFormDetailAbility } from '../ability/i-form-detail-ability';

/**
 * 表单成员控制器基类接口
 *
 * @export
 * @interface IFormDetailController
 */
export interface IFormDetailController<
	A extends IFormDetailAbility = IFormDetailAbility
> {
	/**
	 * 获取模型数据
	 *
	 * @template T
	 * @return {*}  {T}
	 * @memberof IFormDetailController
	 */
	getModel<T>(): T;

	/**
	 * 获取能力
	 *
	 * @return {*}  {A}
	 * @memberof IFormDetailController
	 */
	getAbility(): A;

	/**
	 * 设置能力
	 *
	 * @param {A} ability
	 * @memberof IFormDetailController
	 */
	setAbility(ability: A): void;
}
